package drds.binlog.protocol.entry_protocol_proto;

/**
 * Created by ibm on 2018/10/4.
 */
public interface HeaderOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.alibaba.otter.canal.protocol.Header)
        com.google.protobuf.MessageOrBuilder
{

    /**
     * <code>int32 version = 1;</code>
     */
    int getVersion();

    /**
     * <pre>
     * *binlog/redolog 文件名*
     * </pre>
     * <p>
     * <code>string logfileName = 2;</code>
     */
    String getLogfileName();

    /**
     * <pre>
     * *binlog/redolog 文件名*
     * </pre>
     * <p>
     * <code>string logfileName = 2;</code>
     */
    com.google.protobuf.ByteString
    getLogfileNameBytes();

    /**
     * <pre>
     * *binlog/redolog 文件的偏移位置*
     * </pre>
     * <p>
     * <code>int64 logfileOffset = 3;</code>
     */
    long getLogfileOffset();

    /**
     * <pre>
     * *服务端serverId*
     * </pre>
     * <p>
     * <code>int64 serverId = 4;</code>
     */
    long getServerId();

    /**
     * <pre>
     * * 变更数据的编码 *
     * </pre>
     * <p>
     * <code>string serverenCode = 5;</code>
     */
    String getServerenCode();

    /**
     * <pre>
     * * 变更数据的编码 *
     * </pre>
     * <p>
     * <code>string serverenCode = 5;</code>
     */
    com.google.protobuf.ByteString
    getServerenCodeBytes();

    /**
     * <pre>
     * *变更数据的执行时间 *
     * </pre>
     * <p>
     * <code>int64 executeTime = 6;</code>
     */
    long getExecuteTime();

    /**
     * <code>.com.alibaba.otter.canal.protocol.Type sourceType = 7;</code>
     */
    int getSourceTypeValue();

    /**
     * <code>.com.alibaba.otter.canal.protocol.Type sourceType = 7;</code>
     */
    Type getSourceType();

    /**
     * <pre>
     * * 变更数据的schemaname*
     * </pre>
     * <p>
     * <code>string schemaName = 8;</code>
     */
    String getSchemaName();

    /**
     * <pre>
     * * 变更数据的schemaname*
     * </pre>
     * <p>
     * <code>string schemaName = 8;</code>
     */
    com.google.protobuf.ByteString
    getSchemaNameBytes();

    /**
     * <pre>
     * *变更数据的tablename*
     * </pre>
     * <p>
     * <code>string tableName = 9;</code>
     */
    String getTableName();

    /**
     * <pre>
     * *变更数据的tablename*
     * </pre>
     * <p>
     * <code>string tableName = 9;</code>
     */
    com.google.protobuf.ByteString
    getTableNameBytes();

    /**
     * <pre>
     * *每个event的长度*
     * </pre>
     * <p>
     * <code>int64 eventLength = 10;</code>
     */
    long getEventLength();

    /**
     * <code>.com.alibaba.otter.canal.protocol.EventType eventType = 11;</code>
     */
    int getEventTypeValue();

    /**
     * <code>.com.alibaba.otter.canal.protocol.EventType eventType = 11;</code>
     */
    EventType getEventType();

    /**
     * <pre>
     * *预留扩展*
     * </pre>
     * <p>
     * <code>repeated .com.alibaba.otter.canal.protocol.Pair props = 12;</code>
     */
    java.util.List<Pair>
    getPropsList();

    /**
     * <pre>
     * *预留扩展*
     * </pre>
     * <p>
     * <code>repeated .com.alibaba.otter.canal.protocol.Pair props = 12;</code>
     */
    Pair getProps(int index);

    /**
     * <pre>
     * *预留扩展*
     * </pre>
     * <p>
     * <code>repeated .com.alibaba.otter.canal.protocol.Pair props = 12;</code>
     */
    int getPropsCount();

    /**
     * <pre>
     * *预留扩展*
     * </pre>
     * <p>
     * <code>repeated .com.alibaba.otter.canal.protocol.Pair props = 12;</code>
     */
    java.util.List<? extends PairOrBuilder>
    getPropsOrBuilderList();

    /**
     * <pre>
     * *预留扩展*
     * </pre>
     * <p>
     * <code>repeated .com.alibaba.otter.canal.protocol.Pair props = 12;</code>
     */
    PairOrBuilder getPropsOrBuilder(
            int index);

    /**
     * <pre>
     * *当前事务的gitd*
     * </pre>
     * <p>
     * <code>string gtid = 13;</code>
     */
    String getGtid();

    /**
     * <pre>
     * *当前事务的gitd*
     * </pre>
     * <p>
     * <code>string gtid = 13;</code>
     */
    com.google.protobuf.ByteString
    getGtidBytes();

    public Header.VersionPresentCase getVersionPresentCase();

    public Header.SourceTypePresentCase getSourceTypePresentCase();

    public Header.EventTypePresentCase getEventTypePresentCase();
}
